package com.hyt.it.ogt.ks.model.entity;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.hyt.common.apiInfor.DataType;
import com.hyt.core.base.BaseEntity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 考试答案详情表
 * </p>
 *
 * @author liteng
 * @since 2020-07-02
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@Builder
@TableName("ks_candidate_answer")
@AllArgsConstructor
@ApiModel(value = "CandidateAnswer对象", description = "考试答案详情表")
public class CandidateAnswer extends BaseEntity {

    private static final long serialVersionUID = 1L;

    public CandidateAnswer() {
    }

    @ApiModelProperty(value = "考试id")
    private String examId;

    @ApiModelProperty(value = "考生Id")
    private String candidateId;

    @ApiModelProperty(value = "试卷Id", dataType= DataType.STRING)
    private String paperId;

    @ApiModelProperty(value = "试卷版本号", dataType= DataType.STRING)
    private String paperVersion;

    @ApiModelProperty(value = "准考证号")
    private String admissionNumber;

    @ApiModelProperty(value = "父小题编码")
    private String topicId;

    @ApiModelProperty(value = "父小题编码")
    private String parentItemId;

    @ApiModelProperty(value = "小题编码")
    private String itemId;

    @ApiModelProperty(value = "小题乱序号，考生端显示")
    private Integer itemMixSort;

    @ApiModelProperty(value = "试题难度")
    private Integer itemDifficultyDegree;

    @ApiModelProperty(value = "题型（单选题、多选题等）")
    private String itemType;

    @ApiModelProperty(value = "选项乱序规则")
    @TableField("option_mix_sort_rule")
    private String optionMixSortRule;

    @ApiModelProperty(value = "标答")
    private String standardAnswer;

    @ApiModelProperty(value = "满分")
    private String fullScore;

    @ApiModelProperty(value = "客观题答案")
    private String objectiveAnswer;

    @ApiModelProperty(value = "主观题答案")
    private String subjectiveAnswer;

    @ApiModelProperty(value = "迫选题答案（客观题）")
    private String forceAnswer;

    @ApiModelProperty(value = "分数")
    private BigDecimal score;

    @ApiModelProperty(value = "1未标记，2.已标记")
    private Integer flagState;

    @ApiModelProperty(value = "区分主客观题，1/true：客观题，0/false主观题", hidden = true)
    @TableField("is_objective_or_subjective")
    private Boolean objectiveOrSubjective;

    @ApiModelProperty(value = "考试答案版本号，和过程数据中的重考次数一致。默认值：0")
    private Integer answerVer;

    @ApiModelProperty(value = "查看答案和解析状态，0：未查看，1：已查看")
    @TableField("view_answer_description")
    private Integer viewAnswerDescription;

    @ApiModelProperty(value = "试题编号 (迫选题格式：组卷ID-题库ID-试题ID)")
    @TableField("item_serial_number")
    private String itemSerialNumber;
    
    @ApiModelProperty(value = "答题作答时长（毫秒）")
    @TableField("answer_time")
    private Long answerTime;

    @ApiModelProperty(value = "小题答题作答时长考务设定（毫秒）")
    @TableField("out_time_second")
    private Long outTimeSecond;
}
